namespace BunnyEater.Service.SystemManagementService.UserService.Dto
{
    /// <summary>
    /// 角色数据传输对象
    /// </summary>
    public class RoleDto
    {
        /// <summary>
        /// 角色Id
        /// </summary>
        public string? RoleId { get; set; }
        /// <summary>
        /// 角色名称
        /// </summary>
        public string? RoleName { get; set; }
    }

    /// <summary>
    /// 用户列表数据传输对象
    /// </summary>
    public class UserListDto
    {
        /// <summary>
        /// 用户Id
        /// </summary>
        public string? Id { get; set; }
        /// <summary>
        /// 用户账号
        /// </summary>
        public string? Account { get; set; }
        /// <summary>
        /// 用户姓名
        /// </summary>
        public string? UserName { get; set; }
        /// <summary>
        /// 用户昵称
        /// </summary>
        public string? NickName { get; set; }
        /// <summary>
        /// 用户性别
        /// </summary>
        public bool UserGender { get; set; }
        /// <summary>
        /// 手机号码
        /// </summary>
        public string? MobilePhoneNumber { get; set; }
        /// <summary>
        /// 电话号码
        /// </summary>
        public string? Telephone { get; set; }
        /// <summary>
        /// 生日
        /// </summary>
        public DateTime Birthday { get; set; }
        /// <summary>
        /// 邮箱地址
        /// </summary>
        public string? Email { get; set; }
        /// <summary>
        /// 部门Id
        /// </summary>
        public string? DeptId { get; set; }
        /// <summary>
        /// 员工编号
        /// </summary>
        public string? EmployeeNumber { get; set; }
        /// <summary>
        /// 是否在线
        /// </summary>
        public bool IsOnLine { get; set; }
        /// <summary>
        /// 用户状态（启用/禁用）
        /// </summary>
        public bool State { get; set; }
        /// <summary>
        /// 最后登录时间
        /// </summary>
        public DateTime LastLoginAt { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 密码（隐藏显示）
        /// </summary>
        public string Password { get; set; } = "******";
        /// <summary>
        /// 用户角色名称（多个角色用顿号、隔开）
        /// </summary>
        public string? RoleNames { get; set; }
    }

    /// <summary>
    /// 用户详情数据传输对象
    /// </summary>
    public class UserDetailDto
    {
        /// <summary>
        /// 用户Id
        /// </summary>
        public string? Id { get; set; }
        /// <summary>
        /// 用户账号
        /// </summary>
        public string? Account { get; set; }
        /// <summary>
        /// 用户姓名
        /// </summary>
        public string? UserName { get; set; }
        /// <summary>
        /// 用户昵称
        /// </summary>
        public string? NickName { get; set; }
        /// <summary>
        /// 用户性别
        /// </summary>
        public bool UserGender { get; set; }
        /// <summary>
        /// 手机号码
        /// </summary>
        public string? MobilePhoneNumber { get; set; }
        /// <summary>
        /// 电话号码
        /// </summary>
        public string? Telephone { get; set; }
        /// <summary>
        /// 生日
        /// </summary>
        public DateTime Birthday { get; set; }
        /// <summary>
        /// 邮箱地址
        /// </summary>
        public string? Email { get; set; }
        /// <summary>
        /// 部门Id
        /// </summary>
        public string? DeptId { get; set; }
        /// <summary>
        /// 员工编号
        /// </summary>
        public string? EmployeeNumber { get; set; }
        /// <summary>
        /// 是否在线
        /// </summary>
        public bool IsOnLine { get; set; }
        /// <summary>
        /// 用户状态（启用/禁用）
        /// </summary>
        public bool State { get; set; }
        /// <summary>
        /// 最后登录时间
        /// </summary>
        public DateTime LastLoginAt { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime ModifyTime { get; set; }
        /// <summary>
        /// 密码（隐藏显示）
        /// </summary>
        public string Password { get; set; } = "******";
        /// <summary>
        /// 用户角色列表
        /// </summary>
        public List<RoleDto>? Roles { get; set; }
    }
}